06/09/2010

Questions pièges Java n°6

Double question !

Question 6a :

Qu'affiche le code suivant (à supposer que la fonction main soit effectivement exécutée) :

class Base{
{ System.out.print ( "A"); };
Base( ) { System.out.print ("B"); }
}
class Derived extends Base{
{ System.out.print ("C"); };
Derived ( ) {
this ( 0 );
System.out.print ("D");
}
Derived ( int i ) {
System.out.print ("E");
}
{ System.out.print ("F"); };
}
public class AClass {
public static void main(String[ ] args){
Derived c = new Derived( );
}
}



Question 6b :

Qu'affiche le code suivant (à supposer que la fonction main soit effectivement exécutée) :
class Base {
Base ( ) {init ( ); }
void init ( ) { System.out.println(2); }
}
class Derived extends Base{
int i = 4;
final int j = 4;
void init() { System.out.println ( i +" "+j); }
}
public class AClass {
public static void main(String[ ] args){
Derived c = new Derived( );
}
}

23/06/2010

Questions pièges Java n°5

Question 5 :
Dans le programme suivant quelles sont les lignes de codes qui génèrent une erreur de compilation :

class AClass {
public static void main() {
Byte B1 = 2;
Byte B2 = 200;
Long L = 2;
Number N = 2;
Object O = 2;
}
}

31/05/2010

Questions pièges Java n°4

Question 4 :
Qu'affiche le code suivant si on l'exécute sans activer les assertions (à supposer que la fonction main soit effectivement exécutée) :

class Util{
public static boolean Print(String s){
System.out.print(s);
return true;
}
}
class Parent{
static int i = Classe.init ( );
}
class Classe extends Parent {
static int i = 4;
static int init() {
assert Util.Print ( "A" );
return i;
}
}
public class AClass {
public static void main(String[ ] args){
Classe c = new Classe( );
Util.Print ( "" +Parent.i);
}
}